// pages/home/home.js
import {
  getMultiData,
  getGoodsList
} from "../../services/home.js"

const TOP_DISTANCE=1000;

Page({

  /**
   * 页面的初始数据
   */
  data: {
    banner: [],
    recommend: [],
    titleContent:[
      {"type":"pop", "title":"流行"}, 
      {"type":"new","title":"新款"}, 
      {"type":"sell","title":"精选"},
    ],
    currentIndex:0,
    goods: {
      "pop": {page: 0, list: []},
      "new": {page: 0, list: []},
      "sell": {page: 0, list: []}
    },
    currentType: 'pop',
    isShowBackTop: false,
    isShowFiexdClass: false,
    tabTop: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 获得轮播图和推荐数据
    this._getMultiData();
    // 获得商品列表数据
    this._getGoodsList("pop");
    this._getGoodsList("new");
    this._getGoodsList("sell");
    console.log(this.data.goods.pop)
  },
// -----------------自定义函数-----------------
 // 获得轮播图和推荐数据
  _getMultiData() {
    getMultiData().then((res) => {
      this.setData({
        // 获取轮播图数据
        banner: res.data.data.banner.list,
        // 获取推荐种类图数据
        recommend: res.data.data.recommend.list
      })
    });
  },

// 获得商品列表数据函数
  _getGoodsList(type) {
    var page = this.data.goods[type].page+1;
    getGoodsList(type, page).then((res) => {
      var list = res.data.data.list;
      var tempData = this.data.goods[type].list;
      tempData.push(...list);
      // var tempType = `goods.${type}.list`;
      // var tempPage = `goods.${type}.page`;
      this.setData({
        [`goods.${type}.list`] : tempData,
        [`goods.${type}.page`] : page
      });
    });
  },
  onPageScroll(options) {
    var flag = options.scrollTop > TOP_DISTANCE;
    // 这个判断防止循环调用该方法
   if (flag != this.data.isShowBackTop) {
     this.setData({
       isShowBackTop: flag
     });
   }
   var flag2 = options.scrollTop >= this.data.tabTop;
   if(flag2 != this.data.isShowFiexdClass){
     this.setData({
       isShowFiexdClass: flag2
     });
   }
  },

// ---------------生命周期函数------------------
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
   
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 上拉加载更多
    this._getGoodsList(this.data.currentType)
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  tabClick(event){
    this.setData({
      currentIndex: event.detail.currentIndex,
      currentType: this.data.titleContent[event.detail.currentIndex].type
    });
  },
  loadEvent(){
    wx.createSelectorQuery().select('#tab-control').boundingClientRect(rect => {
      this.setData({
        tabTop: rect.top
      })
    }).exec()
  }
})